A purely functional implementation of ROBDDs in Haskell
نویسندگان
چکیده
This paper presents an implementation of the ROBDD data structure in Haskell. It shows that lazy evaluation can be used to improve the performance of some ROBDD algorithms. While standard implementations construct the whole structure no matter which parts are demanded we use lazy evaluation to provide a more demand driven construction. To achieve this behavior we have to relax a property that guarantees that ROBDDs contain no redundant nodes. All measurements show that relaxing causes only a small number of additional nodes. Furthermore we present an equality check implementation that performs well although it does not make use of canoicity. The canonicity is lost because of the relaxing. The equality check implementation benefits highly from laziness.
منابع مشابه
The Functional Rent AdvisorSlim
The Functional Rent Advisor (FRA) is an intelligent Inter-net application that allows calculating an estimate of the fair rent for a at in Munich. The FRA is a re-implementation of the Munich Rent Advisor FA96] using the high-level purely functional language Haskell. This paper shows that Haskell is appropriate to realize non-trivial Inter-net applications. Simplicity, exibility and rapid proto...
متن کاملImplementation of a Pragmatic Translation from Haskell into Isabelle/HOL
Among other things the functional programming paradigm – in its pure form – offers the advantage of referential transparency. This facilitates reasoning over programs considerably. Haskell is one of the rare purely functional programming languages that is also of practical relevance. Yet, a comparable success for the verification of Haskell programs has not been achieved, so far. Unfortunately,...
متن کاملMpp Parallel Haskell Preliminary Results
Preliminary Results Kei Davis http://www.c3.lanl.gov/~kei/kei.html Abstract MPP Haskell is a parallel implementation of the lazy purely-functional language Haskell for the Thinking Machines Inc. CM-5 large-scale distributed-memory multiprocessor. MPP Haskell is a derivative of GUM, a message-based parallel implementation of Haskell. GUM was carefully designed to minimise performance loss from l...
متن کاملParallel Haskell ( Preliminary Draft )
MPP Haskell is a parallel implementation of the Haskell functional language for the Thinking Machines Inc. CM-5 large-scale distributed-memory multiprocessor. MPP Haskell is a derivative of GUM, a message-based parallel implementation of Haskell. GUM was carefully designed to minimise performance loss from low-bandwidth and high-latency communications; as an apparent consequence MPP Haskell, wi...
متن کاملReinventing Haskell Backtracking
Almost ten years ago, Ralf Hinze has written a functional pearl on how to derive backtracking functionality for the purely functional programming language Haskell. In these notes, we show how to arrive at the efficient, two-continuation based backtracking monad derived by Hinze starting from an intuitive inefficient implementation that we subsequently refine using well known program transformat...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2006